package org.cliff.message.platform.core.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 可重复消费消息消费者注解
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface MessageConsumer {

    /**
     * 业务信息抽取IOC容器Bean名称
     * 
     * @return
     */
    String businessInfoRetriever() default "";

    /**
     * 是否要做幂等性处理
     * 要做幂等性处理，businessInfoRetriever 需指定值
     * @return
     */
    boolean idempotent() default false;

    /**
     * 业务编码，如果没指定业务编码，会根据请求路径去匹配对应的
     * @return
     */
    String functionCode() default "";

}
